Method and apparatus for design and manufacturing application associative interoperability

ABSTRACT

A method and apparatus relating to a CAD system that enables communication between a first CAD application and a second CAD application in a manner providing associative interoperability is provided. In one illustrative example, a method is provided in at least one electronic device of communicating between a first CAD application and a second CAD application. The method begins by storing native data and a sub-set of native data. A plug-in is provided having an application program interface API and being accessible by the second CAD application. The plug-in conveys the sub-set of native data to the second CAD application. The system for carrying out the method includes a first CAD application and a second CAD application. Native data and a sub-set of native data relating to an object modeled on the first CAD application are stored in a first memory store. A plug-in is accessible by the second CAD application and is suitable for accessing and retrieving the subset of native data to enable the second CAD application to create a second model of at least a portion of the object modeled on the first CAD application. The first CAD application does not need to export a file containing the object.

RELATED APPLICATION

[0001] This application is being filed with counterpart application U.S.Application No. (Attorney Docket PAS-171), filed Feb. 26, 2002, which ishereby expressly and entirely incorporated herein by reference.

FIELD OF THE INVENTION

[0002] The present invention relates to computer aided designapplications, and more particularly to the provision of a libraryenabling computer aided design applications to become associativelyinteroperable by providing access to native data files.

BACKGROUND OF THE INVENTION

[0003] A computer-aided design (“CAD”) system is a computer implementedtool for engineers and architects to utilize in designing a plethora ofstructures from products to buildings. The computer portion of the CADsystem includes a central processing unit, a display device, such as acomputer monitor, and a number of input devices such as, a keyboard, amouse, a light pen, a digitialising tablet, and the like. The centralprocessing unit has one or more CAD software applications installedthereon.

[0004] The CAD software applications allow a user to input and view adesign for a particular structure in the form of an object. The user canoften rotate the view of the object to any angle, and also zoom in orzoom out for different views and perspectives. Additional visualfeatures such as highlighting, shading, cross-hatching, and the like,enable the user to design an object with the aid of the computing powerinherent in the central processing unit. The CAD application can alsokeep track of, and monitor, design changes to the object in addition todesign dependencies. This means that when the user adds or changes anelement within the object, other values that depend on that change areautomatically updated in accordance with engineering concepts and rulesof design.

[0005] CAD systems have been in existence for a number of decades. As aresult, different CAD systems have been developed utilizing differentcomputer hardware platforms and different computer softwareapplications. Companies that utilize these CAD systems are often in thesituation wherein a decision was made in years past to purchase aparticular CAD system, and due the expense of changing to a differentCAD system, have maintained and continuously updated the original CADsystem as updated versions are released from the CAD systemmanufacturer. It is difficult to change the particular CAD system that acompany utilizes in creating their designs, because most often,different CAD systems are not interoperable. Without interoperability,one cannot take a model of a structure created on a first CAD system andsimply transfer that modeled object to a second, different, CAD system,without experiencing compatibility issues.

[0006] Some CAD systems include the feature of being able to export datarelating to a model of an object to another CAD system. However, thisrequires a user of the first CAD system to proactively select aparticular model of an object, and perform a series of functions tomodify the data relating to that object and export it to a remote CADsystem, or a remote file location. A user of the second CAD system thenmust read the exported file and translate the data into a compatibleformat for the second CAD system. This makes it difficult for engineersdesigning different pieces of a larger structure to utilize differentCAD systems on an individual basis. Collaboration between engineers inremote locations using different CAD systems becomes logisticallycomplicated to orchestrate. In addition, it is often the case that anobject that is exported to a different CAD system becomes stripped ofthe complete history of how it was constructed. Therefore, a user of thesecond CAD system cannot look back into history of steps that wereutilized to form the particular object. This can hinder the developmentof the object and the overall design because an engineer often requiresknowledge of such histories. It also can lead to design flaws, because achange made in a later version of an object in a different CAD program,likely will not be properly translated back to the originating CADprogram. Therefore, the overall design cannot reliably be checked forvalidity of engineering concepts and rules of design.

[0007] The ability to share design data as an object is being created isan important feature. There is often a desire to have the ability toshare CAD data and move such data from one application to anotherapplication without loss of histories or other data. In addition, thisability to share data is often undesirably hindered by the requirementthat a user at the originating CAD system perform several tasks toprepare the data and export it to the second CAD system, which requirescommunication between users of different CAD systems to share thisinformation.

SUMMARY OF THE INVENTION

[0008] There is a need for a method and apparatus relating to a CADsystem that enables communication between a first CAD application and asecond CAD application in a manner providing associativeinteroperability. The present invention is directed toward furthersolutions to address this need.

[0009] In accordance with one embodiment, a method is provided in atleast one electronic device of communicating between a first CADapplication and a second CAD application. The method begins by storingnative data and a sub-set of native data. A plug-in is provided havingan application program interface (“API”) and being accessible by thesecond CAD application. The plug-in conveys the sub-set of native datato the second CAD application.

[0010] A plug-in, as utilized herein, is a hardware or software modulethat adds a specific feature or service to a larger system. A singlemodule can contain one or more executable routines. Plug-ins can be useddynamically by an application. Instances of plug-ins include DLLS,virtual machine bytecode, scripts, web services, and the like.

[0011] In accordance with example embodiments of the present invention,storing comprises placing the native data and the sub-set of native dataon a storage medium. The native data can comprise data forming a modelof an object in the first CAD application. The sub-set of native datacan result from processing the native data with at least one routinefrom a first library of executable routines to derive the sub-set ofnative data. The first library of executable routines can be embeddedwithin the first CAD program. The first library of executable routinescan alternatively exist in a component accessible by the first CADprogram. The plug-in can comprise a second library of executableroutines. In accordance with further aspects of the present invention, astep of conveying can further comprise the second CAD applicationcalling a second library of executable routines to utilize an API torequest the native data and the sub-set of native data.

[0012] In accordance with another aspect of the present invention afirst library of executable routines can be provided. In addition, thenative data can be generated as an object is modeled in the first CADapplication. The sub-set of native data can be created utilizing a firstlibrary of executable routines.

[0013] In accordance with further aspects of the present invention, athird library of executable routines accessible by the second CADapplication can be provided. The third library of executable routinescan be embedded within the second CAD application, or can be a componentaccessible by the second CAD application.

[0014] In accordance with still further aspects of the presentinvention, the first CAD application can notify the second CADapplication about updates to the sub-set of native data. The first CADapplication can also receive a notification of a modification of theobject from the second CAD application.

[0015] In accordance with further embodiments of the present invention,the first CAD application and/or the second application can communicatewith additional applications such as, e.g., an analysis applicationand/or a manufacturing application.

[0016] In accordance with still another embodiment of the presentinvention, a method is provided in at least one electronic device ofcommunicating between a first CAD application and a second CADapplication. The method includes providing a model of an object on thefirst CAD application. A plug-in is utilized in the second CADapplication to retrieve a subset of native data from the first CADapplication relating to the model of the object. The subset of nativedata enables the second CAD application to create a second model of atleast a portion of the object on the second CAD application.

[0017] In accordance with still another embodiment of the presentinvention, a system is provided for modeling an object. The systemincludes a first CAD application and a second CAD application. Nativedata and a sub-set of native data relating to an object modeled on thefirst CAD application are stored in a first memory store. A plug-in isaccessible by the second CAD application and is suitable for accessingand retrieving the sub-set of native data to enable the second CADapplication to create a second model of at least a portion of the objectmodeled on the first CAD application. The first CAD application does notneed to export a file containing the object.

[0018] In accordance with further aspects of the present invention, thesystem can include, a first library of executable routines accessible bythe first CAD application. The first library of executable routines canbe either embedded within the first CAD application, or a componentaccessible by the first CAD application. The sub-set of native data canresult from utilization of at least one executable routine of the firstlibrary. The plug-in can include a second library of executable routinesand an API. A third library of executable routines can be provided andcan be either embedded within the second CAD application, or a componentaccessible by the second CAD application. The third library ofexecutable routines can be suitable for reading the sub-set of nativedata utilizing the third library of executable routines to translate thesub-set of native data and create the second model of at least a portionof the object in the second CAD application.

[0019] In accordance with still another embodiment of the presentinvention, a method is provided in at least one electronic device ofcommunicating between a first CAD application and a second CADapplication. The method includes providing a first library of executableroutines accessible by the first CAD application. Native data isgenerated as an object is modeled in the first CAD application. Asub-set of native data is created utilizing the first library ofexecutable routines. The native data and the sub-set of native data arestored. A second library of executable routines is provided in the formof a plug-in having an API and being accessible by the second CADapplication. The second library of executable routines can be called toutilize the API to retrieve the native data, filter the native data toextract the sub-set of native data, and convey the sub-set of nativedata to the second CAD application.

[0020] In accordance with further aspects of the present invention, themethod can further include providing a third library of executableroutines accessible by the second CAD application. The sub-set of nativedata can be read utilizing the third library of executable routines totranslate the sub-set of native data and create a model of at least aportion of the object in the second CAD application.

[0021] In accordance with yet another embodiment of the presentinvention, a method is provided in at least one electronic device ofcommunicating between a first application and a second application. Themethod includes storing native data and a sub-set of native data. Aplug-in is provided having an API and being accessible by the secondapplication. The subset of native data is conveyed by the plug-in.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The aforementioned features and advantages, and other featuresand aspects of the present invention, will become better understood withregard to the following description and accompanying drawings, wherein:

[0023]FIG. 1 is a diagramatic illustration of a conventional CAD system;

[0024]FIG. 2 is a diagrammatic illustration of a CAD application,according to one aspect of the present invention;

[0025]FIG. 3 is a diagrammatic illustration of the CAD application ofFIG. 2 interacting with a second CAD application, according to oneaspect of the present invention;

[0026]FIGS. 4A and 4B are flowcharts illustrating methods by whichnative data can be created and transported, according to one aspect ofthe present invention;

[0027]FIG. 4C is a step-wise progression of the update feature,according to one aspect of the present invention; and

[0028]FIG. 5 is a diagrammatic illustration of the CAD applications ofFIG. 2 and FIG. 3 interacting with each other and additionalapplications according to one aspect of the present invention.

DETAILED DESCRIPTION

[0029] An illustrative embodiment of the present invention relates to amethod and apparatus providing associative interoperability between twoor more design or manufacturing related applications. Each of the designor manufacturing related applications can read each other's native datafiles to evaluate and create model objects. Associativity is realized inthat when a modification is made within one of the engineering ormanufacturing based applications, the other engineering or manufacturingrelated applications can receive notifications and obtain updates as tothe modifications without a cumbersome exporting process.

[0030]FIGS. 2 through 5, wherein like parts are designated by likereference numerals throughout, illustrate example embodiments of amethod and apparatus for providing associative interoperability betweenengineering and manufacturing design applications according to aspectsof the present invention. Although the present invention will bedescribed with reference to the example embodiments illustrated in thefigures, it should be understood that many alternative forms can embodythe present invention. One of ordinary skill in the art willadditionally appreciate different ways to alter the parameters of theembodiments disclosed, such as the size, shape, type of elements, ormaterials, form of data, type of application or the like, in a mannerstill in keeping with the spirit and scope of the present invention.

[0031]FIG. 1 illustrates a conventional computer aided design (“CAD”)system 20. The CAD system 20 includes hardware and software components.A computing apparatus 22 forms the hardware portion of the CAD system20. The computing apparatus 22 is a programmable device that responds toa specific set of instructions in a well defined manner and can executea set of instructions. The computing apparatus 22 can include a storagedevice 24, which enables the computing apparatus 22, to store at leasttemporarily, data, information, and programs (e.g., RAM or ROM). A massstorage device 26 can substantially permanently store data, information,and programs (e.g., a disk drive or tape drive). An input device 28 canbe provided through which data and instructions enter the computingapparatus (e.g., a keyboard, mouse, stylus, light pen, or a digitizingtablet). An output device 30 can be provided to display or produceresults of computing actions (e.g., display screen, printer, plotter, orinfra red, serial, or digital port). A central processing unit (CPU) 32can include a processor for executing the specific set of instructions.

[0032] A CAD application 34 can be installed, or in communication, withthe computer apparatus 22 to provide instructions for processing. TheCAD application 34 can be used for e.g., engineering, manufacturing,architectural, or other design or manufacturing functions. One ofordinary skill in the art will appreciate that CAD systems in the pasthave existed in the form of a dedicated hardware device incorporatingthe CAD functions and unable to perform non-CAD related operations. Morerecent CAD systems make use of mainframe or personal computer hardwareplatforms and are embodied in software applications installed thereon.

[0033]FIG. 2 shows a diagrammatic illustration of CAD-A application 34,which is an example embodiment of a CAD application for use inconjunction with the teachings of the present invention. The CAD-Aapplication 34 includes a first library 42 of executable routines. Thefirst library 42 of executable routines enables the manipulation ofnative data generated by the CAD-A application 34 when an object ismodeled. For example, when the CAD-A application 34 models an object, aplurality of files are created. A part-file includes part native data 44and an assembly file includes assembly native data 48. The part-nativedata 44 relates to the geometric representation of the part, a set offeatures that describe how to create the geometric representation of thepart, and other information such as annotations, manufacturinginformation, and dimensional parameters. The assembly native data 48relates to the location of, and quantities of, parts in an assembly,instructions for placing parts in the proper locations, and differentconfigurations of the assembly.

[0034] By native data, what is meant is data in a native file formatthat is used internally by the CAD-A application 40. When an applicationstores data, it does so in a native format. One of ordinary skill in theart will appreciate that the illustrated embodiments disclosed hereinutilize part native data, assembly native data, sub-sets of part nativedata, and sub-sets of assembly native data. However, these specificforms of native data are merely examples. Applicants intend the presentinvention to apply to all forms of native data, and sub-sets thereof,that are accessible and manipulatable in the manner described herein.The invention is not limited to the specific example forms of nativedata discussed herein. These examples are for illustrative purposes toaid in the explanation of the features of the present invention.

[0035] The executable routines of the first library 42 manipulate thepart native data 44 to create a sub-set of part native data 46 and/or asub-set of assembly native data 50. The subset of part native data 46and the sub-set of assembly native data 50 represent data that has beenfiltered or otherwise extracted from the part native data 44 and theassembly native data 48 of the CAD-A application 40. The sub-set of partnative data 46, and the sub-set of assembly native data 50 comprise apredetermined selection of the native data sufficient to enable anotherCAD application to evaluate, read, recreate, regenerate, or update amodel of an object relating to the object modeled in the CAD-Aapplication 34. For example, the subset of part native data 46 and thesub-set of assembly native data 50 include information concerningfeatures and attributes of the object modeled in the CAD-A application34.

[0036] A vendor of the CAD-A application 40 provides the CAD-Aapplication 40 with access to the first library 42. This access can bein the form of the first library 42 being embedded in the CAD-Aapplication 40, or the first library 42 can be a component accessible bythe CAD-A application 40. In addition, the vendor of the CAD-Aapplication 40 provides a second library in the form of a plug-in 52.The plug-in 52 includes an application program interface (“API”) toenable communication between the CAD-A application 40 and another CADapplication as described below. The plug-in 52 includes at least oneexecutable routine suitable for accessing the part native data 44 andthe assembly native data 48 to extract the sub-set of part native 46 andthe sub-set of assembly native data 50.

[0037]FIG. 3 is a diagrammatic illustration of the CAD-A application 40associatively interoperating with another CAD application, CAD-Bapplication 60. The CAD-B application 60 includes a third library 62 ofexecutable routines. The plug-in 52, provided by the vendor of the CAD-Aapplication 40, is provided to the CAD-B application 60.

[0038] In operation, when a model of an object is created on the CAD-Aapplication 40, the part native data 44 and the assembly native data 48are generated and stored. The sub-set of part native data 46 and thesub-set of assembly native data 50 can be generated by the first library42 executable routines at the time that the part native data 44 and theassembly native data 48 are generated. Alternatively, the sub-set ofpart native data 46, and the sub-set of assembly native data 50 can begenerated with a filtering process executed by the plug-in 52 when thesub-sets of native data 46 and 50 are requested by the CAD-B application60. In either instance, if the CAD-B application 60 requires informationrelating to the object modeled on the CAD-A application 40, the CAD-Bapplication 60 utilizes the plug-in 52 to access the part native data 44and the assembly native data 48 to retrieve the sub-set of part nativedata 46 and the sub-set of assembly native data 50.

[0039] Once the sub-set of part native data 46 and the sub-set ofassembly native data 50 arrive at the CAD-B application 60, the thirdlibrary 62 of executable routines are utilized by the CAD-B application60 to recreate, regenerate, or otherwise model at least a portion of theobject as originally modeled in the CAD-A operation 40. Because theplug-in 52 can access the native data files of the CAD-A application 40,there is no requirement of the CAD-A application 40, or user thereof, toinitiate an exporting process to transfer the data. In other words, theplug-in 52 knows where to find the necessary data in the native files ofthe CAD-A application 40. Therefore, every time a change is made in theCAD-A application 40, other applications such as the CAD-B applications60 can read the updated sub-set of part native data 46 information andthe sub-set of assembly native data 50 information. The interoperabilityis achieved by the provision of the plug-in 52 by each vendor making anapplication such as the CAD-A application 40 for creating models ofobjects or otherwise manipulating the modeled objects.

[0040]FIGS. 4A and 4B are flowcharts illustrating two possible methodsby which the required sub-sets of native data can be created andtransported. In FIG. 4A, a model of an object is created on the CAD-Aapplication 40 (step 100). The part native data 44 and the assemblynative data 48 are generated and stored, and the sub-set of part nativedata 46 and the sub-set of assembly native data 50 are generated by thefirst library 42 of executable routines and stored (step 102). Thus, thepart native data 44, the assembly native data 48, the sub-set of partnative data 46, and the sub-set of assembly native data 50 all are inexistence on one or more storage mediums. The CAD-B application 60requests information relating to the object modeled on the CAD-Aapplication 40 (step 104). The CAD-B application 60 utilizes the plug-in52 to access the part native data 44 and the assembly native data 48 toretrieve the sub-set of part native data 46 and the sub-set of assemblynative data 50 (step 106). The third library 62 of executable routinesare utilized by the CAD-B application 60 to evaluate, read, recreate,regenerate, or otherwise model at least a portion of the object asoriginally modeled in the CAD-A operation 40 (step 108).

[0041] In FIG. 4B, a model of an object is created on the CAD-Aapplication 40 (step 110). The part native data 44 and the assemblynative data 48 are generated and stored (step 112). The CAD-Bapplication 60 requests information relating to the object modeled onthe CAD-A application 40 (step 114). The sub-set of part native data 46,and the sub-set of assembly native data 50 are generated with afiltering or translation process executed by the plug-in 52 andtransferred to the CAD-B application (step 116). The sub-set of partnative data 46 and the sub-set of assembly native data 50 in thisexample are not pre-existing when the CAD-B application 60 requests theinformation. The third library 62 of executable routines are utilized bythe CAD-B application 60 to evaluate, read, recreate, regenerate, orotherwise model at least a portion of the object as originally modeledin the CAD-A operation 40 (step 118).

[0042]FIG. 4C shows a step-wise progression of the update featuredescribed previously. An object having been communicated from the CAD-Aapplication 40 to the CAD-B application 60 will often be updated at apoint in time subsequent to the transfer of the sub-set of part nativedata 46 and the sub-set of assembly native data 50. When the CAD-Aapplication 40 updates the object (step 120), the CAD-A application cansend a notification to other applications such as the CAD-B application60 that an update was made (step 122). The CAD-B application 60 can thenread the updated sub-set of part native data 46 information and theupdated sub-set of assembly native data 50 information (step 124) toensure that the object on the CAD-B application 60 is consistent withthe CAD-A application 40. Likewise, when a change is made to the objectin the CAD-B application 60, the CAD-B application can issuenotifications to other applications that a change has been made and anupdate is required.

[0043]FIG. 5 is a diagrammatic illustration further showing theassociative interoperability of different applications utilizing theteachings of the present invention. The CAD-A application 40 is providedincluding the first library 42. The CAD-A application 40, in thisembodiment, models the object and creates the part native data 44 andthe assembly native data 48. The CAD-B application 60 makes use of theplug-in 52 provided by the vendor of the CAD-A application 40 to accessthe native data of the CAD-A application 40 and retrieve the sub-set ofpart native data 46 and the sub-set of assembly native data 50.

[0044] The CAD-B application 60 recreates the modeled object originatingwith the CAD-A application and creates a part file holding part nativedata 64 and an assembly file holding assembly native data 68. The vendorof the CAD-B application further provides a plug-in 72 containing afourth library.

[0045] The CAD-B application 60, and a user thereof, is then free tomake modifications and updates to the modeled object. The modificationsand updates can be accessed by the CAD-A application 40 utilizing theplug-in 72 provided by the vendor of the CAD-B application 60. Theplug-in 72 accesses the part native data 64 and the assembly native data68 of the CAD-B application 60 to retrieve a sub-set of part native data66 and a sub-set of assembly native data 70. The sub-set of part nativedata 66 and the sub-set of assembly native data 70 can then be appliedto the original model of the object on the CAD-A application 40 toensure that both the CAD-A application 40 and the CAD-B application 60are maintaining like models of the object.

[0046] In addition, other applications, can make use of the plug-ins andthe associative interoperability provided by the teachings of thepresent invention. For example, an analysis application 74 and amanufacturing application 76 are example applications that may benefitfrom the associative interoperability of the present invention.Although, one of ordinary skill in the art will appreciate, that thetypes of applications that can take advantage of the associativeinteroperability provided by the teachings of the present invention arenot limited to analysis and/or manufacturing applications.

[0047] Continuing with the example applications, the analysisapplication 74 can be provided with access to a fifth library 78, whilethe manufacturing application 76 can be provided with access to a sixthlibrary 80. The analysis application 74 can gain access to the partnative data 44 and the assembly native data 48, utilizing a seventhlibrary plug-in 82. The analysis application 74 can gain access to thepart native data 64 and the assembly native data 68, utilizing an eighthlibrary plug-in 84. The manufacturing application 76 can gain access tothe part native data 44 and the assembly native data 48, utilizing aninth library plug-in 86. The manufacturing application 76 can also gainaccess to the part native data 64 and the assembly native data 68utilizing a tenth library plug-in 88.

[0048] The vendors of the CAD-A application 40 provide the plug-in 82and the plug-in 86. The vendors of the CAD-B application 60 provide theplug-in 84 and the plug-in 88. The analysis application 74 can take thesub-set of part native data 46, the sub-set of assembly native data 48,the sub-set of part native data 66, and the sub-set of assembly nativedata 70, and perform various analysis routines as desired. Themanufacturing application 76 can take the sub-sets of native data 46,50, 66, and 70, and manufacture work pieces based on the model objectformed in the CAD-A application 40 and the CAD-B application 60.

[0049] One of ordinary skill in the art will appreciate that plug-in 52,plug-in 82, and plug-in 86 can all be instances of a same library ofexecutable routines provided by the vendor of the CAD-A application 40.Likewise, plug-in 72, plug-in 84, and plug-in 88 can all be instances ofa same library of executable routines provided by the vendor of theCAD-B application 60. Similarly, the first library 42, the third library62, the fifth library 78, and the sixth library 80 can also be instancesof a same library of executable routines.

[0050] In addition, if any of the CAD-A application 40, the CAD-Bapplication 60, the analysis application 74, or the manufacturingapplication 76 should make a modification, update, or alteration to themodeled object that affects the native data, a notification can be sentout to the other applications. The other applications (for example,CAD-A application 40, CAD-B application 60, analysis application 74, andmanufacturing application 76) can utilize the respective plug-ins 52,72, 82, 84, 86, and 88 to receive modified updates to the sub-sets ofnative data 46, 50, 66, and 70.

[0051] The system and method of the present invention enables variousapplications provided by multiple vendors to become associativelyinteroperable. The method of the present invention, and associatedlibraries of executable routines, enables different applications to readeach others files natively and to evaluate and create geometry ormodeled objects. Vendors of commercial CAD or other applications can usethe present invention to perform core-modeling functions and tointer-operate with other applications built utilizing the features ofthe present invention. The vendors of applications that do not authorsolid models, but view, analyze, and otherwise leverage content from CADdata built utilizing applications with access to libraries of thepresent invention, can use the present invention plug-ins to load andevaluate those models associatively. Users can integrate proprietarymodeling or analysis technology into the libraries of executableroutines of the present invention to provide compatibility with otherauthoring applications maintaining like libraries. By utilizing thelibraries, of the present invention, those proprietary applicationsbecome associatively interoperable with their authoring applications.This removes the need to export files from one application to another.Further, if an original model of an object is modified, the analysis andnative file interoperability combine to permit true concurrentengineering in a heterogeneous environment.

[0052] Numerous modifications and alternative embodiments of the presentinvention will be apparent to those skilled in the art in view of theforegoing description. Accordingly, this description is to be construedas illustrative only and is for the purpose of teaching those skilled inthe art the best mode for carrying out the present invention. Details ofthe structure may vary substantially without departing from the spiritof the invention, and exclusive use of all modifications that comewithin the scope of the appended claims is reserved. It is intended thatthe present invention be limited only to the extent required by theappended claims and the applicable rules of law.

What is claimed is:
 1. In at least one electronic device, a method ofcommunicating between a first computer aided design (CAD) applicationand a second CAD application, comprising: storing native data and asub-set of native data; providing a plug-in having an applicationprogram interface (API) and being accessible by the second CADapplication; and the plug-in conveying the sub-set of native data tosecond CAD application.
 2. The method of claim 1, wherein storingcomprises placing the native data and the sub-set of native data on arecordable medium.
 3. The method of claim 1, wherein the native datacomprises data forming a model of an object in the first CADapplication.
 4. The method of claim 1, wherein the sub-set of nativedata results from processing the native data with at least one routinefrom a first library of executable routines to derive the sub-set ofnative data.
 5. The method of claim 4, wherein the first library ofexecutable routines is embedded within the first CAD program.
 6. Themethod of claim 4, wherein the first library of executable routines is acomponent accessible by the first CAD program.
 7. The method of claim 1,wherein the plug-in comprises a second library of executable routines.8. The method of claim 1, wherein conveying further comprises the secondCAD application calling a second library of executable routines toutilize an API to request the native data and the sub-set of nativedata.
 9. The method of claim 1, further comprising providing a firstlibrary of executable routines.
 10. The method of claim 1, furthercomprising generating the native data as an object is modeled in thefirst CAD application.
 11. The method of claim 1, further comprisingcreating the sub-set of native data utilizing a first library ofexecutable routines.
 12. The method of claim 1, further comprisingproviding a third library of executable routines accessible by thesecond CAD application.
 13. The method of claim 12, wherein the thirdlibrary of executable routines is embedded within the second CADapplication.
 14. The method of claim 12, wherein the third library ofexecutable routines is a component accessible by the second CADapplication.
 15. The method of claim 1, further comprising the first CADapplication notifying the second CAD application about updates to thesub-set of native data.
 16. The method of claim 1, further comprisingthe first CAD application receiving a notification of a modification ofthe object from the second CAD application.
 17. The method of claim 1,further comprising at least one of the first CAD application and thesecond CAD application communicating with an analysis application. 18.The method of claim 1, further comprising at least one of the first CADapplication and the second CAD application communicating with amanufacturing application.
 19. In at least one electronic device, amethod of communicating between a first CAD application and a second CADapplication, comprising: providing a model of an object on the first CADapplication; utilizing a plug-in in the second CAD application toretrieve a sub-set of native data from the first CAD applicationrelating to the model of the object; wherein the sub-set of native dataenables the second CAD application to create a second model of at leasta portion of the object on the second CAD application.
 20. The method ofclaim 19, wherein native data and the sub-set of native data are storedon a recordable medium.
 21. The method of claim 19, further comprisingproviding native data in the form of data relating to the model of theobject in the first CAD application.
 22. The method of claim 21, whereinthe sub-set of native data results from processing the native data withat least one routine from a first library of executable routines toderive the sub-set of native data.
 23. The method of claim 22, whereinthe first library of executable routines is embedded within the firstCAD program.
 24. The method of claim 22, wherein the first library ofexecutable routines is a component accessible by the first CAD program.25. The method of claim 19, wherein the plug-in comprises a secondlibrary of executable routines.
 26. The method of claim 25, whereinutilizing the plug-in further comprises calling the second library ofexecutable routines to utilize an API to retrieve native data and thesub-set of native data.
 27. The method of claim 26, wherein utilizingthe plug-in further comprises filtering the native data to extract thesub-set of native data.
 28. The method of claim 27, wherein utilizingthe plug-in further comprises receiving the sub-set of native data fromthe first CAD application.
 29. The method of claim 25, wherein utilizingthe plug-in further comprises calling the second library of executableroutines to utilize an API to retrieve the sub-set of native data. 30.The method of claim 29, wherein utilizing the plug-in further comprisesreceiving the sub-set of native data from the first CAD application. 31.The method of claim 19, further comprising providing a third library ofexecutable routines accessible by the second CAD application.
 32. Themethod of claim 31, wherein the third library of executable routines isembedded within the second CAD application.
 33. The method of claim 31,wherein the third library of executable routines is a component of thesecond CAD application.
 34. The method of claim 31, further comprisingreading the sub-set of native data utilizing the third library ofexecutable routines to translate the sub-set of native data and createthe second model of at least a portion of the object in the second CADapplication.
 35. The method of claim 19, further comprising the secondCAD application receiving notifications from the first CAD applicationabout updates to the sub-set of native data.
 36. The method of claim 19,wherein the sub-set of native data includes a complete history of theobject in a manner enabling the second CAD application to review thehistory and modify the object.
 37. The method of claim 19, furthercomprising communicating a modification of the object in the second CADapplication to the first CAD application.
 38. A system for modeling anobject, comprising: a first CAD application; a second CAD application;native data and a sub-set of native data relating to an object modeledon the first CAD application stored in a first memory store; a plug-inaccessible by the second CAD application and suitable for accessing andretrieving the sub-set of native data to enable the second CADapplication to create a second model of at least a portion of the objectmodeled on the first CAD application without the first CAD applicationhaving to export a file containing the object.
 39. The system of claim38, further comprising a first library of executable routines accessibleby the first CAD application.
 40. The system of claim 39, wherein thefirst library of executable routines is one of embedded within the firstCAD application and a component accessible by the first CAD application.41. The system of claim 39, wherein the sub-set of native data resultsfrom utilization of at least one executable routine of the firstlibrary.
 42. The system of claim 38, wherein the plug-in comprises asecond library of executable routines and an API.
 43. The system ofclaim 38, further comprising a third library of executable routines. 44.The system of claim 43, wherein the third library of executable routinesis one of embedded within the second CAD application and a componentaccessible by the second CAD application.
 45. The system of claim 43,wherein the third library of executable routines is suitable for readingthe sub-set of native data utilizing the third library of executableroutines to translate the sub-set of native data and create the secondmodel of at least a portion of the object in the second CAD application.46. In at least one electronic device, a method of communicating betweena first CAD application and a second CAD application, comprising:providing a first library of executable routines accessible by the firstCAD application; generating native data as an object is modeled in thefirst CAD application; creating a sub-set of native data utilizing thefirst library of executable routines; storing the native data and thesub-set of native data; providing a second library of executableroutines in the form of a plug-in having an application programinterface (API) and being accessible by the second CAD application; andcalling the second library of executable routines to utilize the API toretrieve the native data, filter the native data to extract the sub-setof native data, and convey the sub-set of native data to the second CADapplication.
 47. The method of claim 46, further comprising providing athird library of executable routines accessible by the second CADapplication.
 48. The method of claim 47, further comprising reading thesub-set of native data utilizing the third library of executableroutines to translate the sub-set of native data and create a model ofat least a portion of the object in the second CAD application.
 49. Inat least one electronic device, a method of communicating between afirst application and a second application, comprising: storing nativedata and a sub-set of native data; providing a plug-in having an API andbeing accessible by the second application; and the plug-in the sub-setof native data to the plug-in.
 50. A computer readable medium containingsoftware suitable for executing a method of communicating between afirst computer aided design (CAD) application and a second CADapplication, the method comprising: storing native data and a sub-set ofnative data; providing a plug-in having an application program interface(API) and being accessible by the second CAD application; and theplug-in conveying the sub-set of native data to the second CADapplication.
 51. A computer readable medium containing software suitablefor executing a method of communicating between a first CAD applicationand a second CAD application, the method comprising: providing a modelof an object on the first CAD application; utilizing a plug-in in thesecond CAD application to retrieve a sub-set of native data from thefirst CAD application relating to the model of the object; wherein thesub-set of native data enables the second CAD application to create asecond model of at least a portion of the object on the second CADapplication.
 52. A computer readable medium containing software suitablefor executing a method of communicating between a first CAD applicationand a second CAD application, the method comprising: providing a firstlibrary of executable routines accessible by the first CAD application;generating native data as an object is modeled in the first CADapplication; creating a sub-set of native data utilizing the firstlibrary of executable routines; storing the native data and the sub-setof native data; providing a second library of executable routines in theform of a plug-in having an application program interface (API) andbeing accessible by the second CAD application; and calling the secondlibrary of executable routines to utilize the API to retrieve the nativedata, filter the native data to extract the sub-set of native data, andconvey the sub-set of native data to the second CAD application.
 53. Acomputer readable medium containing software suitable for executing amethod of communicating between a first application and a secondapplication, the method comprising: storing native data and a sub-set ofnative data; providing a plug-in having an API and being accessible bythe second application; and the plug-in conveying the sub-set of nativedata to second CAD application.